package cn.stylefeng.guns.modular.business.frequency.syssite.service;

import cn.stylefeng.guns.core.pojo.page.PageResult;
import cn.stylefeng.guns.core.pojo.response.ResponseData;
import cn.stylefeng.guns.modular.business.frequency.cmcompany.model.result.PkgLinkman;
import cn.stylefeng.guns.modular.business.frequency.syssite.entity.SysSite;
import cn.stylefeng.guns.modular.business.frequency.syssite.model.param.SysSiteParam;
import cn.stylefeng.guns.modular.business.frequency.syssite.model.result.PkgSite;
import cn.stylefeng.guns.modular.business.frequency.syssite.model.result.SimpleSiteVO;
import cn.stylefeng.guns.modular.business.frequency.syssite.model.result.SiteDTO;
import cn.stylefeng.guns.modular.business.frequency.userawardbase.entity.UserAwardBase;
import cn.stylefeng.guns.modular.business.frequency.userawardbase.model.result.UserAwardBaseResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tencentcloudapi.cws.v20180312.models.Site;

import java.util.List;

/**
 * sys_site 服务类
 *
 * @author yujie
 * @date 2023/05/09 17:17
 */
public interface SysSiteService extends IService<SysSite> {

    /**
     * 分页查询sys_site
     *
     * @author yujie
     * @date 2023/05/09 17:17
     */
    PageResult<SysSite> page(SysSiteParam sysSiteParam);

    /**
     * 查询所有sys_site
     *
     * @author yujie
     * @date 2023/05/09 17:17
     */
    List<SysSite> list(SysSiteParam sysSiteParam);

    /**
     * 添加sys_site
     *
     * @author yujie
     * @date 2023/05/09 17:17
     */
    void add(SysSite site);

    /**
     * 删除sys_site
     *
     * @author yujie
     * @date 2023/05/09 17:17
     */
    void delete(SysSiteParam sysSiteParam);

    /**
     * 编辑sys_site
     *
     * @author yujie
     * @date 2023/05/09 17:17
     */
    void edit(SysSiteParam sysSiteParam);

    /**
     * 查看详情sys_site
     *
     * @author yujie
     * @date 2023/05/09 17:17
     */
    SysSite detail(SysSiteParam sysSiteParam);

    List<PkgSite> getSiteList(String month, SiteDTO siteDTO);

    Page<PkgLinkman> getCompanyLinkmanList(String id);

    List<SimpleSiteVO> getSimpleSiteList();

    /** 所有网点列表 */
    List<SysSite> getAllSiteList(SysSite site);

    PkgSite getSiteDetail(String id);

    boolean checkSiteAdd(SysSite site, StringBuilder errorMsg);

    boolean checkSiteUpdate(SysSite site, StringBuilder errorMsg);

    void updateSite(SysSite site);

    boolean checkSiteDelete(String id, StringBuilder errorMsg);

    void deleteSite(String id);

    ResponseData getUserList(String id);

    List getSiteBonusList(String month);

    List getSiteRoyaltyList(String month);

    List getCompanyExportData(String id);

    void addSiteAward(SysSite site);

    List<UserAwardBaseResult> userAwardList(SysSite site);

    void userAwardDelelt(Long id);

    void userAwardUpdate(UserAwardBase site);
}